package com.mall.service;

import com.mall.domain.dto.CartDTO;
import com.mall.domain.dto.UpdateQuantityDTO;
import com.mall.domain.vo.CartVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @description: 购物车业务层
 * @author 勾新杰
 * @version 1.0
 * @date 2024/11/24 20:35
 */
public interface CartService {

    /**
     * 添加购物车
     * @param cartDTO 购物车传输对象
     */
    void addCart(CartDTO cartDTO);

    /**
     * 修改购物车条目商品的数量
     * @param quantityDTO 修改数量传输对象
     */
    void updateQuantity(UpdateQuantityDTO quantityDTO);

    /**
     * 删除购物车条目
     * @param id 购物车条目id
     */
    void deleteCart(Long id);

    /**
     * 增加购物车条目商品数量
     * @param id 购物车条目id
     */
    void increaseQuantity(Long id);

    /**
     * 减少购物车条目商品数量
     * @param id 购物车条目id
     */
    void decreaseQuantity(Long id);

    /**
     * 查询购物车列表
     * @return 购物车列表
     */
    List<CartVO> listCart();

    /**
     * 清空购物车
     */
    void clearCart();
}
